﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int e;
static int f;

//main104：未初始化变量的值
int main104()
{
	int a;
	//2.局部变量a，未经初始化程序可以运行，但要使用变量a，就必须初始化；
	//printf("1.输出未初始化的变量a：%d\n", a);

	static int b;
	printf("3.输出未初始化的静态局部变量b：%d\n", b);//0
	b += 2;
	b *= b;
	printf("4.对未经初始化的静态局部变量b，进行操作，得到b：%d\n", b);//4

	printf("5.输出未初始化的全局变量e：%d\n", e);//0
	e++;//1
	e *= e++;//2
	printf("6.对未经初始化的全部变量e，进行操作，得到e：%d\n", e);//2

	printf("7.输出未初始化的静态全局变量f：%d\n", f);//0
	f++;//1
	f *= f++;//2
	printf("8.对未经初始化的静态全部变量f，进行操作，得到f：%d\n", f);//2

	//9.数组arr定义在栈区，初始空间太大，直接导致程序崩了；定义大内存数据，放到堆区，音视频等数据；
		//windows的栈区为1-8M不等，linux为1-16M不等；
	//int arr[100000000] = { 0 };//4 0000 0000/1024/1024=380MB
	int arr[100000] = { 0 };

	//10.死循环不会把内存占满，会把cpu占满；内存占满，需要占满堆区；
	/*int i = 0;
	while (1)
	{
		printf("%d", i++);
	}*/

	//11.开辟堆空间；40M
	//int* p = (int*)malloc(1000000000 * sizeof(int));
	int* p = (int*)malloc(10000000000 * 8);

	//12.加断点；
	getchar();
	system("pause");
	return EXIT_SUCCESS;
}